Adjusting content attributes through actions on context based menu

ABSTRACT

Context based menus are employed for content attribute adjustment through touch or gesture actions, keyboard entries, mouse or pen actions, and similar input. Context based menus are deployed to adjust displayed attributes of content. In some examples, a slider enables the user to visually confirm selected attribute such as a font size. Other content attributes may be adjusted using context based attribute menus providing granular adjustment for incremental attribute values. Attributes including line weights and gradient based values are adjustable through context based attribute menus.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplications Serial No. 61/507,983 and 61/556,945 filed on Jul. 14, 2011and Nov. 8, 2011, respectively. The disclosures of the provisionalpatent applications are hereby incorporated by reference for allpurposes.

BACKGROUND

With the proliferation of computing and networking technologies, twoaspects of computing devices have become prevalent: non-traditional(e.g., mouse and keyboard) input mechanisms and smaller form factors.User interfaces for all kinds of software applications have beendesigned taking typical screen sizes and input mechanisms into account.Thus, user interactions in conventional systems are presumed to bethrough keyboard and mouse type input devices and a minimum screen sizethat enables users to interact with the user interface at a particularprecision.

Limited display real estate burdens many portable devices from providingfull featured content management functionality. Furthermore, gesturalcommanding is not efficient using conventional menus including supportfor limited displays or just taking into account where the user'sfinger/mouse/pen is. Additionally, display devices such as projectors,monitors, and televisions may lack controls for providing contentmanagement functionality. Modern software solutions such as on screenkeyboards may be awkward to type and encompass valuable display area.Lack of adequate software solutions for managing content onnon-traditional devices largely limit device use to content consumption.Carrying multiple devices for content management and consumption defeatsportability and unnecessarily takes away from an enriching singularsource for content consumption and management.

One of the challenging functionality control areas is content attributemanagement such as font size/color/style for textual content, thicknessand various styles for graphical content. For example, font sizes areprovided in preset values listed in a drop-down or similar menu inconventional systems, which may not be a natural way for a user tointeract using touch or gestures. Similarly, graphics such as lines mayhave various attributes (thickness, corner styles, color, dash style,etc.) that need to be presented to a user in an intuitive, user-friendlymanner for the user to be able to interact through new inputtechnologies.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This summary is not intended to exclusively identify keyfeatures or essential features of the claimed subject matter, nor is itintended as an aid in determining the scope of the claimed subjectmatter.

Embodiments are directed to adjusting content attributes through acontext based menu. Context based menus may be deployed for variety ofscenarios for content management. An application according toembodiments may present the context based menu upon selection of contentor upon activation of a context based menu control. Content attributessuch as font size, style, graphics line weight, style, and similar onesmay be presented in an intuitive manner such that selection can be madeeasily through non-traditional input methods such as touch or gesture.Some attributes may be presented with visual examples. Through ahierarchical approach submenus may be activated for further detailedselection of available commands through the selection of items on a toplevel context based menu. Furthermore, selection of attribute values ona linear or otherwise spectrum may be enabled through a sliding actionthat allows continuous value selection as opposed to distinct valuespresented in traditional menus.

These and other features and advantages will be apparent from a readingof the following detailed description and a review of the associateddrawings. It is to be understood that both the foregoing generaldescription and the following detailed description are explanatory anddo not restrict aspects as claimed.

BRIEF DESCRIPTION OF DRAWINGS

FIGS. 1A and 1B illustrate some example devices, where context basedfont or attribute menus may be employed;

FIG. 2 illustrates an example context based menu with controls to adjustan attribute of content according to embodiments;

FIG. 3 illustrates example scenarios for using context based menuaccording to embodiments;

FIG. 4 illustrates other example scenarios for using context based menuaccording to embodiments;

FIG. 5 illustrates examples of context based menus for adjusting fonttypes and styles according to embodiments;

FIG. 6 illustrates an example of a context based menu for adjusting aline thickness attribute of graphical content according to embodiments;

FIG. 7 is a networked environment, where a system according toembodiments may be implemented;

FIG. 8 is a block diagram of an example computing operating environment,where embodiments may be implemented; and

FIG. 9 illustrates a logic flow diagram for a process of adjustingcontent attributes through a context based menu in touch and gestureenabled devices according to embodiments.

DETAILED DESCRIPTION

As briefly described above, a user interface of an application executingon a device may present a context based menu in relation to displayedcontent. The context based menu may provide controls to adjust the fontsize of the content. The application may detect a user action associatedwith the context based menu. The application may execute a command toadjust the font size based on the detected user action, which mayinclude touch, gesture, keyboard entry, mouse click, and/or pen input.Content attributes as used herein may be any aspect of content that canbe represented along a scale either discretely or continuously.Continuous representation can be interacted with by moving a finger (orequivalent gesture or similar input) across a circle. Discrete optionsmay be interacted with by selecting a range of points along a line, forexample, by snapping one's finger to a range of points along the line. Anon-exhaustive, illustrative set of examples for content attributes mayinclude an amount of space between lines, a number of columns, a size ofmargins, an amount of indentation, a font kerning, a zoom action, andcomparable ones.

In the following detailed description, references are made to theaccompanying drawings that form a part hereof, and in which are shown byway of illustrations specific embodiments or examples. These aspects maybe combined, other aspects may be utilized, and structural changes maybe made without departing from the spirit or scope of the presentdisclosure. The following detailed description is therefore not to betaken in the limiting sense, and the scope of the present invention isdefined by the appended claims and their equivalents. While theembodiments will be described in the general context of program modulesthat execute in conjunction with an application program that runs on anoperating system on a personal computer, those skilled in the art willrecognize that aspects may also be implemented in combination with otherprogram modules.

Generally, program modules include routines, programs, components, datastructures, and other types of structures that perform particular tasksor implement particular abstract data types. Moreover, those skilled inthe art will appreciate that embodiments may be practiced with othercomputer system configurations, including hand-held devices,multiprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers, and comparablecomputing devices. Embodiments may also be practiced in distributedcomputing environments where tasks are performed by remote processingdevices that are linked through a communications network. In adistributed computing environment, program modules may be located inboth local and remote memory storage devices.

Embodiments may be implemented as a computer-implemented process(method), a computing system, or as an article of manufacture, such as acomputer program product or computer readable media. The computerprogram product may be a computer storage medium readable by a computersystem and encoding a computer program that comprises instructions forcausing a computer or computing system to perform example process(es).The computer-readable storage medium is a computer-readable memorydevice. The computer-readable storage medium can for example beimplemented via one or more of a volatile computer memory, anon-volatile memory, a hard drive, a flash drive, a floppy disk, or acompact disk, and comparable media.

According to embodiments, a user interface of a touch-enabled orgesture-enabled device may employ context based menus to adjust contentattributes such as font size, font style, font boldness, graphics style,color, thickness, a line color, a line type, a corner shape, a shadingattribute, a fill color, a spacing, a zoom action on displayed content,and a fill type, etc. A context based menu may make use of featuresspecific to touch or gesture enabled computing devices, but may alsowork with a traditional mouse and keyboard. Context based menus, ingeneral, may be used to provide quick access to commonly used commandswhile viewing or editing displayed content such as documents, emails,contact lists, other communications, or any content (e.g., audio, video,etc.). Context based menus may appear as part of a user interface'sregular menu, in a separate viewing pane (e.g., a window) outside orinside the user interface, and so on. Typically, context based menuspresent a limited set of commands for easy user access, but additionalsubmenus may be presented upon user selection. Commonly used contextbased menus may appear over the viewed document. A tap or swipe actionas used herein may be provided by a user through a finger, a pen, amouse, or similar device, as well as through predefined keyboard entrycombinations or a voice command.

FIGS. 1A and 1B illustrate some example devices, where a context basedmenus may be employed. As touch and gesture based technologies areproliferating and computing devices employing those technologies arebecoming common, user interface arrangement becomes a challenge. Touchand/or gesture enabled devices, specifically portable devices, tend tohave smaller screen size, which means less available space for userinterfaces. For example, in a user interface that enables editing of adocument (text and/or graphics), in addition to the presented portion ofthe document, a virtual keyboard may have to be displayed furtherlimiting the available space (“real estate”). Thus, in such scenarios,providing a full control menu may be impractical or impossible.Embodiments are directed to a context based font or attribute menus toadjust content attributes such as font size.

As mentioned above, smaller available display space, larger content, anddifferent aspect ratios make conventional menus impractical. Existingtouch-based devices such as tablet PCs and similar ones are typicallydirected to data consumption (i.e., viewing). On the other hand,commonly used applications such as word processing applications,spreadsheet applications, presentation applications, and comparable onesare directed to creation (generating and editing documents with textual,graphical, and other content). Currently available context based menusare either invisible most of the time or they block the content whenthey are visible. A context based menu according to some embodiments maybe provided dynamically based on presented content and available spacewhile providing ease of use without usurping much needed display area.

Referring to FIGS. 1A and 1B, some example devices are illustrated,where a context based font or attribute menu may be provided accordingto embodiments. A context based menu or a context based attribute menumay be an embodiment of a context based menu. Embodiments may beimplemented in touch and/or gesture enabled devices or others withkeyboard/mouse/pen input, with varying form factors and capabilities.

Device 104 in FIG. 1A is an example of a large size display device,where a user interface may be provided on screen 106. Functionality ofvarious applications may be controlled through hardware controls 108and/or soft controls such as a context based menu displayed on screen106. A user may be enabled to interact with the user interface throughtouch actions or gestures (detected by a video capture device). Alauncher indicator may be presented at a fixed location or at adynamically adjustable location for the user to activate the contextbased menu. Examples of device 104 may include public informationdisplay units, large size computer monitors, and so on.

Device 112 in FIG. 1A is an example for use of a context based menu tocontrol functionality. A user interface may be displayed on a screen orprojected on a surface and actions of user 110 may be detected asgestures through video capture device 114. The user's gestures mayactivate a context based menu to adjust an attribute of a contentdisplayed on the device 112.

FIG. 1B includes several example devices such as touch enabled computermonitor 116, laptop computer 118, handheld computer 124, smart phone126, tablet computer (or slate) 128, and mobile computing device 132,which may be used for computing, communication, control, measurement,and a number of other purposes. The example devices in FIG. 1B are shownwith touch activation 120. However, any of these and other exampledevices may also employ gesture enabled activation of context basedmenus to adjust an attribute of content such as font size. In addition,tools such as pen 130 may be used to provide touch input. A contextbased menu may be controlled also through conventional methods such as amouse input or input through a keyboard 122.

FIG. 2 illustrates an example context based menu with controls to adjustan attribute of content. Diagram 200 displays a context based menu 202with control items to adjust content attributes such as font size,style, color, type, etc.

According to some embodiments, a user interface of an application maydisplay context based menu 202 with control item 218 to access a priorcontext based menu. The prior context based menu may be a higher levelmenu providing top level functionality such as copy and paste. Controlitem 218 may also be used to change the context based menu 202 to acollapsed state (i.e., visually minimized).

According to other embodiments, the context based menu 202 may have afont size control item 204 to access another context based menu such asmenu 302 in FIG. 3 to adjust the font size of textual content. Thecontrol item(s) may display an indicator to show the current font type,style, and size of selected textual content. Alternatively, acontemplated but not yet applied font size, style, type, etc. may alsobe displayed on the control items (e.g., when a user hovers on a fontsize but does not click or equivalent touch/gesture actions). Anothercontrol item 206 may enable a user to underline the selected textualcontent. Additionally, a control item 208 may enable the user to accessa context based menu to alter content color. Examples may include acontext based menu showing a color gradient to enable a user to pick acolor for the content.

According to yet other embodiments, the context based menu 202 mayprovide a control item 210 to make the font of the selected content“bold.” Similarly, the context based menu 202 may enable a user toitalicize the selected content using control item 212. Furthermore, thecontext based menu 202 may enable a user to adjust the font style usingcontrol item 214. The control item 214 may be assigned to a singlestyle. Alternatively, the control item 214 may launch a context basedsubmenu to adjust the style of the content such as the menu 516 in FIG.5.

Some or all of the above-discussed control items may be a one commandcontrol (i.e., the underlying command is executed upon selection of thecontrol and the context based menu may be collapsed or hidden followingthe execution) or associated with one or more submenus. For example,selection of the control item 206 for underlining textual content mayresult in deployment of a submenu that presents options for underlinestyle (e.g. dashed, straight), underline thickness, underline color,etc. The associated submenus may be launched through a selection of theparticular control (e.g., tapping on the control or swiping from thecenter toward the control) or through an action (e.g., tap) on anactivation area along the perimeter of the context based menu next toeach control (the white arrows in diagram 200).

FIG. 3 illustrates example scenarios for using context based menuaccording to embodiments. Diagram 300 displays example context basedmenu 302 executing a variety of user actions.

As previously stated, a user action may be a touch action, a gestureaction, a keyboard input, a mouse input, pen input, or similar actionselecting a particular control item on the context based menu.Alternatively, the user action may be a swipe over a portion of thecontext based menu 302. A user may swipe 304 a finger over a slider 308to adjust the font size of the textual content in a continuous manner(i.e., even though each available font size is not listed on the menu,the swipe-based slider selection may enable the user to select unlistedfont sizes easily).

According to some embodiments, the application may display the slider308 centered on a center command button 318 of the context based menu302. The application may position the slider 308 at a start position ona current font size value of the managed content. An example may includethe font size of selected content that a user may wish to adjust. Theapplication may move the slider clockwise subsequent to detecting theclockwise swipe action 304 (or alternatively through another clockwiseswipe action 306) starting from a start position of the slider 308.Next, the application may increase the font size according to theclockwise swipe, up to a maximum font size. Maximum font size may bedisplayed on the context based menu 302 and may be determined accordingto a system setting or may be user adjustable according to applicationprivileges. An example of a font size increase may include moving theslider 308 from a starting position at font size 10 to font size 20 inreaction to matching user action. Subsequent to the user action, theapplication may change the font size of the content from 10 to 20.

According to other embodiments, the application may move the slider 308counterclockwise subsequent to detecting a counterclockwise swipe fromthe start position. The application may decrease the font size accordingto the counterclockwise swipe, to a minimum font size. An example mayinclude moving the slider 308 from a starting position at font size 20to font size 10 in reaction to a matching user action. Subsequent to theuser action, the application may change the font size of the contentfrom 20 to 10.

According to yet other embodiments, the application may display anindicator 310 on the context based menu 302 of a previous font size(e.g., font size 13). The indicator 310 may be presented as a bold, anitalicized, an underlined, a highlighted, or an enclosed font size valueor just as another number of the menu that does not appear at one of thedisplayed axes of the menu. The enclosed font size value may be acircled font size value, a font size value with a square around it, orany other shape to differentiate the previous font size value fromothers on the context based menu 302.

According to other embodiments, the application may integrate fontstyles into the context based menu for managing font sizes. Theapplication may place a font style action 312 between displayed fontsize values. An example may include adjusting the content to a selectedfont style such as “heading 1” subsequent to detecting a user action 312between displayed font size values on the menu 302.

According to other embodiments, the application may detect a user actionmoving clockwise past a maximum font size value and ending in a deadzone 314. The user action may end between the maximum font size valueand the minimum font size value. In this scenario, the application mayposition the slider 308 on the maximum font size value subsequent to theuser action ending in the dead zone 314.

According to other embodiments, the application may detect a user actionmoving counterclockwise past a minimum font size value and ending in thedead zone 314. The user action may end between the minimum font sizevalue and the maximum font size value. In this scenario, the applicationmay position the slider 308 on the minimum font size value subsequent tothe user action ending in the dead zone 314. Another aspect of the deadzone is that it may allow a user to continue to move their fingerclockwise or counterclockwise but not have their font change immediatelyfrom the largest to the smallest font. Instead it may create a bufferwithin which the font does not actually change until one reaches theother edge of the buffer zone. For example, if the user movescounterclockwise past the minimum size it may stay at the minimumthrough the dead zone but once the user passes the maximum size it mayswitch to the maximum size (and then start shrinking again, etc.).

According to other embodiments, the application may display font state320 including present font colors, font type, and font shape on the fontsize values. Additionally, the application may detect a tap action 316as the user action on a font size value. Subsequent to the user actionon the font size value, the application may position the slider 308 onthe font size value and adjust the font size of the content according tothe font size value associated with tap action 316.

FIG. 4 illustrates other example scenarios for using a context basedmenu to adjust font attributes according to embodiments. Diagram 400displays example context based menu 402 executing a variety of useractions.

According to some embodiments, the application may display a tooltip 410subsequent to a user action 404 such as increasing the font size. Inaddition, the application may show a tooltip 414 subsequent to useraction 406 adjusting the font size. The user action 406 may provide moregranularity compared to user action 404 due to larger arc available to auser to pick a font size according to distance of the user actions 404and 406 from the center of the menu 402. Thus, the relative position ofthe user action with respect to a center of the menu may be taken intoconsideration enabling increased granularity especially in slider stylemenu actions.

According to other embodiments, the application may calculate the fontsize according to a polynomial equation to determine the font size forthe user action ending in between font size values. An example mayinclude a user moving the slider in between font size 36 and 72. Thepolynomial curve may help determine what font size to pick if the useris ⅓ of the way in between, halfway in between, etc., so that it feelslike a natural increase. The application may determine the font sizeaccording to the polynomial calculation determining where the slider 408stops in relation to both font size increments.

According to yet other embodiments, the application may select the fontsize value closest to an end position of the user action 412 subsequentto detecting the end position outside an action area of the font sizevalues. An action area may be an oval area determined by system settingscentered around a control such as a font size value. The application mayadjust the length of the slider 408 to position the slider on the endposition of the user action 412. Adjusting the slider 408 length mayenable the user to more accurately view a selected font size value tothe corresponding user action. Tooltips 410 and 414 may be helpful whenthe user selection is between presented font size values displaying tothe user what the selected font looks like. In some example embodiments,a speed of the slider may be adjusted dynamically to provide moregranularity in selecting the font size (or comparable attribute). Anexample may be a slower moving slider 408 to enable the user to pick adesired font size increment. In some examples, “snap points” may be usedalong the slider at each of the displayed font sizes. As the user movesby sliding/dragging closer to those snap points the line may beautomatically moved to the next size, making it efficient to get thosesizes. A back-off logic may also be employed. For example, if the userthen goes in the reverse direction, the stickiness may be removed tothat point and allow the user to select a point very close but notexactly on any of the axes (e.g., if the user's finger was very close to72, they would still be able to select font 71).

FIG. 5 illustrates examples of context based menus for adjusting fonttypes and styles according to embodiments. Diagram 500 displays contextbased menu 502 for adjusting a font type and context based menu 516 foradjusting a font style.

According to some embodiments, a user interface of an applicationsupporting context based menus may present a context based menu 502 toenable adjustment of a font type of textual content using a slider 506.A user may move a slider 506 with a swipe action 504 moving clockwise orcounterclockwise on the context based menu 502 selecting among availablefont types. In some examples, the different font types may be displayedon the context based menu 502 (e.g., along the perimeter). In otherexamples, a list of available font types 510 may be presented adjacentto the context based menu 502. Alternatively, the list may be presentedin the middle of the radial menu with a dial around the edge. As theuser moves the slider 506 on the menu, font types that correspond to theslider's current position may be indicated on the list through agraphical, color, textual, shading, or similar scheme. For example, inthe illustrated example of context based menu 502, the slider 506 maycorrespond to a position for “Arial” font. This may be emphasized on thelist of available font types 510 through highlighting 512.

The available font types on the list may be displayed using therespective fonts to provide the user further visual assistance or in asingle font (for example, in small display areas, where the size of themenu may make reading different font types relatively difficult).

According to other embodiments, the context based menu 502 may displayan indicator 508 showing the current font type of the content. Theindicator 508 may also show other state information of the content suchas font size and style. Additionally, the context based menu 502 mayprovide a access button 514 to collapse the context based menu 502and/or launch a prior context based menu such as top level menu toprovide other functionality to manage the content.

Context based menu 516 may provide a user with similar functionality asdiscussed above in conjunction with context based menu 502 to adjust afont style of textual content. The menu 516 may display indicator 518 toshow the current font style of the selected content. The list ofavailable styles 520 and the highlighter 522 may be used to present thestyles in an easily visible manner as the user may be moving theirfinger over the menu (thereby, moving the slider). In some embodiments,the user may be enabled to scroll through the list of available styles520 through a swipe action, for example, and select a font style bytapping on it on the list. Context based menu may be a submenu under atop level menu for adjusting font attributes and it may includeadditional submenus depending on the number of styles, for example.Typically, a predefined number of styles may be presented to preventoverlapping problems. However, using a slider (and a separate list ofavailable items) and by adjusting the speed of the slider, highergranularity and, thereby, larger number of available items may bepresented for selection through a context based menu.

FIG. 6 illustrates an example of a context based attribute menuadjusting an attribute of graphical content according to embodiments.Diagram 600 displays context based attribute menu 602 to adjust lineweights of a selected content such as a drawing.

According to some embodiments, a user interface may display menu 602 toadjust an attribute of content such as line weights. The menu 602 maydisplay line weight values 614 corresponding to line weights illustratedby list 604. In some examples, a line thickness (or the attribute ingeneral) may also be displayed on the slider itself. For example, wherethe slider is at ¼ it may be a ¼ thickness and then the slider maybecome thicker as it goes around until it is at its thickest at 6. Andalternatively, the thicknesses (or the attribute) may be relative andnot exact. Thus, it could be just that the thickness increases but doesnot match exactly the numbers. A user action 612 may move a slider 610through swipe and tap actions as described in context based menusselecting a line weight. The application may adjust the line weight ofthe graphical content (any shape that includes lines) according to theuser action. Additionally, the menu 602 may display the selected lineweight through a highlighter 606 similar to context based menusdescribed above.

According to other embodiments, the application may detect a swipeaction as the user action starting from a center control button 608 andmoving away from the context based attribute menu 602. The applicationmay determine an attribute value 614 intersecting the swipe action.Subsequently, the application may adjust the attribute according to theattribute value 614. Additionally, the application may display anattribute increase control at an end of the slider 610 to increase theattribute beyond the displayed end value. Furthermore, the applicationmay display an attribute decrease control at the other end of the slider610 to decrease the attribute beyond the displayed end value.

A context based attribute menu may be used to adjust any attribute oftextual or graphical content. Examples may include line weights, cornerstyles, gradients used to pick a color, shading schemes for graphicalobjects, and comparable ones. The application may display incrementalvalues, discrete attributes, or continuous selection of values on theattribute menu. Displayed values may be selected according to linear,logarithmic, or other scales. The displayed values may also be userselectable according to application privileges, user preferences, and/orcustomization.

The example commands, links, submenus, configurations, and context basedfont and attribute menus depicted in FIGS. 1 through 6 are provided forillustration purposes only. Embodiments are not limited to the shapes,forms, and content shown in the example diagrams, and may be implementedusing other textual, graphical, and similar schemes employing theprinciples described herein.

FIG. 7 is a networked environment, where a system according toembodiments may be implemented. In addition to locally installedapplications, such as application 822 discussed below, a context basedfont/attribute menu for touch and/or gesture enabled devices may be alsobe employed in conjunction with hosted applications and services thatmay be implemented via software executed over one or more servers 706 orindividual server 708. A hosted service or application may communicatewith client applications on individual computing devices such as ahandheld computer 701, a desktop computer 702, a laptop computer 703, asmart phone 704, a tablet computer (or slate), 705 (‘client devices’)through network(s) 710 and control a user interface presented to users.

As previously discussed, a context based menu may be used for adjustingan attribute (such as font size) of the content provided by the hostedservice or application. For example, a browser application, a wordprocessing application, a spreadsheet application, a calendarapplication, a note taking application, a graphics application, andcomparable ones may make use of a context based menu according toembodiments. The context based menu may be activated through a varietyof user actions such as selection of content, activation of a launcherindicator, detection of a predetermined touch or gesture action, etc.

Client devices 701-705 are used to access the functionality provided bythe hosted service or application. One or more of the servers 706 orserver 708 may be used to provide a variety of services as discussedabove. Relevant data may be stored in one or more data stores (e.g. datastore 714), which may be managed by any one of the servers 706 or bydatabase server 712.

Network(s) 710 may comprise any topology of servers, clients, Internetservice providers, and communication media. A system according toembodiments may have a static or dynamic topology. Network(s) 710 mayinclude a secure network such as an enterprise network, an unsecurenetwork such as a wireless open network, or the Internet. Network(s) 710may also coordinate communication over other networks such as PSTN orcellular networks. Network(s) 710 provides communication between thenodes described herein. By way of example, and not limitation,network(s) 710 may include wireless media such as acoustic, RF, infraredand other wireless media.

Many other configurations of computing devices, applications, datasources, and data distribution systems may be employed to adjustattribute of content through a context based font/attribute menu.Furthermore, the networked environments discussed in FIG. 7 are forillustration purposes only. Embodiments are not limited to the exampleapplications, modules, or processes.

FIG. 8 and the associated discussion are intended to provide a brief,general description of a suitable computing environment in whichembodiments may be implemented. With reference to FIG. 8, a blockdiagram of an example computing operating environment according toembodiments is illustrated, such as computing device 800. In a basicconfiguration, computing device 800 may be any device in stationary,mobile, or other form such as the example devices discussed inconjunction with FIGS. 1A, 1B, and 7, and include at least oneprocessing unit 802 and system memory 804. Computing device 800 may alsoinclude a plurality of processing units that cooperate in executingprograms. Depending on the exact configuration and type of computingdevice, the system memory 804 may be volatile (such as RAM),non-volatile (such as ROM, flash memory, etc.) or some combination ofthe two. System memory 804 typically includes an operating system 805suitable for controlling the operation of the platform, such as theWINDOWS ®, WINDOWS MOBILE®, or WINDOWS PHONE® operating systems fromMICROSOFT CORPORATION of Redmond, Washington. The system memory 804 mayalso include one or more software applications such as program modules806, application 822, context based attribute menu module 824, anddetection module 826.

Context based attribute menu module 824 may operate in conjunction withthe operating system 805 or application 822 and provide a context basedfont or attribute menu as discussed previously. Context based fontattribute module 824 may also provide commands, links, and submenus toadjust attribute of displayed content. Detection module 826 may detectuser actions and execute a command associated with the user action toadjust an attribute such as the font size. This basic configuration isillustrated in FIG. 8 by those components within dashed line 808.

Computing device 800 may have additional features or functionality. Forexample, the computing device 800 may also include additional datastorage devices (removable and/or non-removable) such as, for example,magnetic disks, optical disks, or tape. Such additional storage isillustrated in FIG. 8 by removable storage 809 and non-removable storage810. Computer readable storage media may include volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information, such as computer readableinstructions, data structures, program modules, or other data. Systemmemory 804, removable storage 809 and non-removable storage 810 are allexamples of computer readable storage media. Computer readable storagemedia includes, but is not limited to, RAM, ROM, EEPROM, flash memory orother memory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed bycomputing device 800. Any such computer readable storage media may bepart of computing device 800. Computing device 800 may also have inputdevice(s) 812 such as keyboard, mouse, pen, voice input device, touchinput device, an optical capture device for detecting gestures, andcomparable input devices. Output device(s) 814 such as a display,speakers, printer, and other types of output devices may also beincluded. These devices are well known in the art and need not bediscussed at length here.

Computing device 800 may also contain communication connections 816 thatallow the device to communicate with other devices 818, such as over awireless network in a distributed computing environment, a satellitelink, a cellular link, and comparable mechanisms. Other devices 818 mayinclude computer device(s) that execute communication applications,other directory or policy servers, and comparable devices. Communicationconnection(s) 816 is one example of communication media. Communicationmedia can include therein computer readable instructions, datastructures, program modules, or other data in a modulated data signal,such as a carrier wave or other transport mechanism, and includes anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media includes wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared and other wireless media.

Example embodiments also include methods. These methods can beimplemented in any number of ways, including the structures described inthis document. One such way is by machine operations, of devices of thetype described in this document.

Another optional way is for one or more of the individual operations ofthe methods to be performed in conjunction with one or more humanoperators performing some. These human operators need not be collocatedwith each other, but each can be only with a machine that performs aportion of the program.

FIG. 9 illustrates a logic flow diagram for a process of adjustingcontent attributes through actions on a context based menu in touchand/or gesture enabled devices according to embodiments. Process 900 maybe implemented as part of an application or an operating system of anycomputing device capable of accepting touch, gesture, keyboard, mouse,pen, or similar inputs.

Process 900 begins with operation 910, where a context based menu may bepresented by a user interface of an application displaying the contextbased menu on a device screen to manage content. The context based menumay be a context based attribute menu to adjust an incremental attributeof the content such as font characteristics, layout features, lineweights, gradient based attributes, and similar ones. Subsequently, theuser interface may detect a user action on the context based menu atoperation 920. The user action may be a tap, a swipe, a press and hold,or similar user action including, but not limited to touch, gestures,keyboard entries, mouse clicks, pen inputs, optically captured gestures,voice commands, etc. At operation 930, the application may adjust a fontattribute of the content according to the user action.

The operations included in process 900 are for illustration purposes.Adjusting content attributes through actions on context based menusaccording to embodiments may be implemented by similar processes withfewer or additional steps, as well as in different order of operationsusing the principles described herein.

The above specification, examples and data provide a completedescription of the manufacture and use of the composition of theembodiments. Although the subject matter has been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims and embodiments.

1. A method executed in a computing device for adjusting contentattributes through a context based menu, the method comprising: inresponse to detecting one of a: a tap input, a swipe input, a mouseinput, a voice input, a visual input, and a keyboard input, presenting acontext based menu in relation to a displayed content on a userinterface for managing one or more attributes of the content; and inresponse to detecting another one of a: a tap input, a swipe input, amouse input, a voice input, a visual input, and a keyboard inputadjusting an attribute of the content according to the detected otherinput.
 2. The method of claim 1, further comprising: displaying distinctattributes of a common type on the context based menu; and enablingselection of one of the displayed distinct attributes to be applied to aselected portion of the content.
 3. The method of claim 2, furthercomprising: displaying one from a set of: a font type, a font style, afont boldness, a text style, a text color, an amount of space betweenlines, a number of columns, a size of margins, an amount of indentation,a font kerning, a zoom action on displayed content, and a paragraphstyle as the distinct attributes, wherein the selected portion of thecontent includes text.
 4. The method of claim 2, further comprising:displaying one from a set of: a line color, a line type, a corner shape,a shading attribute, a fill color, a spacing, a zoom action on displayedcontent, and a fill type as the distinct attributes, wherein theselected portion of the content includes graphics.
 5. The method ofclaim 1, further comprising: displaying a slider of the context basedmenu extending from a center action button in a substantially circularshape to adjust a content attribute that has one of a set of discretevalues and a set of continuous values.
 6. The method of claim 5, furthercomprising: displaying values for one from a set of: a line weight, aline color, a font size, and a text color the content attribute, whereinthe slider enables selection of displayed attribute values and attributevalues between the displayed attribute values through a swipe action. 7.The method of claim 5, further comprising: displaying one or morepreviously selected content attribute values along the slider.
 8. Themethod of claim 5, further comprising: moving the slider clockwise inresponse to detecting a clockwise swipe starting from an end position ofthe slider; and selecting the content attribute value according to theclockwise swipe up to a maximum content attribute value.
 9. The methodof claim 5, further comprising: moving the slider counterclockwise inresponse to detecting a counterclockwise swipe starting from an endposition of the slider; and selecting the content attribute valueaccording to the clockwise swipe up to a minimum content attributevalue.
 10. The method of claim 7, further comprising: detecting a useraction moving clockwise past a maximum content attribute value andending in a dead zone between the maximum content attribute value and aminimum content attribute value; positioning the slider on the maximumcontent attribute value; and applying the maximum content attributevalue to a selected portion of the content.
 11. The method of claim 7,further comprising: detecting a user action moving counterclockwise pasta minimum content attribute value and ending in a dead zone between theminimum content attribute value and a maximum content attribute value;and positioning the slider on the minimum content attribute value; andapplying the minimum content attribute value to a selected portion ofthe content.
 12. A computing device for adjusting content attributesthrough a context based menu, the computing device comprising: an inputdevice configured to detect at least one of: a swipe action, a tapaction, a keyboard action, a mouse action, a voice input, and a visualinput; a memory; a processor coupled to the memory, the processorexecuting an application and causing a user interface associated withthe application to be displayed on a screen, wherein the processor isconfigured to: in response to detecting one of a: a tap input, a swipeinput, a mouse input, a voice input, a visual input, and a keyboardinput, present a context based menu in relation to a displayed contenton a user interface for managing one or more attributes of the content;display a slider extending from a center action button of the contextbased menu; detect another one of a: a tap input, a swipe input, a mouseinput, a voice input, a visual input, and a keyboard input on thecontext based menu; position the slider according to the detected otherinput; and adjust an attribute of a selected portion of the contentaccording to the detected other input.
 13. The computing device of claim12, wherein the processor is further configured to: display a tooltipshowing the content attribute subsequent to adjusting the contentattribute.
 14. The computing device of claim 12, wherein the processoris further configured to: display a list of available content attributesadjacent to the context based menu; indicate a current selection of thecontent attribute employing one of: a highlighting scheme, a shadingscheme, a color scheme, and a textual scheme; and enable furtherselection of the content attribute on the list of available contentattributes.
 15. The computing device of claim 12, wherein the processoris further configured to: compute a numeric content attribute valueaccording to a polynomial equation to determine the numeric contentattribute value corresponding to the other detected input ending inbetween content attribute values displayed on the context based menu.16. The computing device of claim 12, wherein the processor is furtherconfigured to: as a user input along the slider moves closer to acontent attribute value selection, snapping to the content attributevalue selection.
 17. The computing device of claim 16, wherein theprocessor is further configured to: as the user input moves farther awayfrom a center of the context based menu, providing increased granularityfor selection of content attribute values.
 18. A computer-readablememory device with instructions stored thereon for adjusting textattributes through a context based attribute menu, the instructionscomprising: in response to detecting one of a: a tap input, a swipeinput, a mouse input, a voice input, a visual input, and a keyboardinput, presenting a context based menu in relation to a displayedcontent on a user interface for managing one or more text attributes ofa selected portion of displayed content; displaying a slider of thecontext based attribute menu extending from a center action button in asubstantially circular shape; detecting another one of a: a tap input, aswipe input, a mouse input, a voice input, a visual input, and akeyboard input on the context based attribute menu; positioning theslider according to the detected other input; and adjusting a textattribute of a selected portion of the displayed content according tothe detected other input.
 19. The computer-readable memory device ofclaim 18, wherein the instructions further comprise: detecting a swipeaction along the slider as the input; determining a text attributeintersecting the swipe action; and adjusting the text attributeaccording to the determined text attribute.
 20. The computer-readablememory device of claim 18, wherein the instructions further comprise:displaying an attribute increase control at an end of the slider toincrease a value of a text attribute; and displaying an attributedecrease control at another end of the slider to decrease a value of afont size.